package cn.com.surker.sale.service;

import cn.com.surker.sale.entity.SaleContractTicket;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.com.surker.spring.RestResultDto;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

/**
* <p>
    * 销售合同开票信息表 服务类
    * </p>
*
* @author admin
* @since 2024-08-03
*/
public interface SaleContractTicketBaseService extends IService<SaleContractTicket> {

    /**
     * 分页查询
     * @param ticket
     * @return
     */
    IPage findPage(SaleContractTicket ticket);

    /**
     * 新增开票信息
     * @param ticket
     * @return
     */
    Integer saveTicket(SaleContractTicket ticket);

    /**
     * 更新开票数据
     * @param ticket
     * @return
     */
    Integer updateTicket(SaleContractTicket ticket);

    /**
     * 更新开票状态
     * @param id
     * @param status
     * @param creator
     * @return
     */
    Integer updateStatus(Long id, Integer status, String creator);

    /**
     * 查询合同时间段产值
     * @param searchVal
     * @param orgId
     * @param startTime 开始时间 yyyy-mm-dd
     * @param endTime 结束时间 yyyy-mm-dd
     * @return
     */
    List<Map<String, Object>> findContractYield(String searchVal, Long orgId, String startTime, String endTime);

    /**
     * 新增工地
     * @param searchVal
     * @param orgId
     * @param startTime 开始时间 yyyy-mm-dd
     * @param endTime 结束时间 yyyy-mm-dd
     * @return
     */
    List<Map<String, Object>> findNewContract(String searchVal, Long orgId, String startTime, String endTime, Integer type);

}
